package com.zenith.user.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zenith.user.po.domain.Role;
import com.zenith.user.po.dto.RoleDTO;
import com.zenith.common.result.PageResult;

import java.util.List;

/**
 * 角色表(TRole)服务接口
 *
 * @author makejava
 * @since 2025-08-15 21:58:21
 */
public interface RoleService extends IService<Role> {

    /**
     * 分页查询角色
     *
     * @param query 查询条件（包含分页参数）
     * @return 分页结果
     */
    PageResult<Role> getRolePage(RoleDTO query);

    // =========================== 新增方法 ===========================

    /**
     * 创建角色
     *
     * @param roleDTO 角色信息
     * @return 创建结果
     */
    boolean createRole(RoleDTO roleDTO);

    /**
     * 更新角色
     *
     * @param roleDTO 角色信息
     * @return 更新结果
     */
    boolean updateRole(RoleDTO roleDTO);

    /**
     * 删除角色
     *
     * @param id 角色ID
     * @return 删除结果
     */
    boolean deleteRole(Long id);

    /**
     * 批量分配角色权限
     *
     * @param roleId 角色ID
     * @param permissionIds 权限ID列表
     * @return 分配结果
     */
    boolean batchAssignPermissions(Long roleId, List<Long> permissionIds);
}
